home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / PredatorPrey / Globals.h < prev    next >
Text File  |  1996-06-22  |  5KB  |  208 lines

  1. /* Globals.h */    /*    C14 Calculator */
  2.  
  3. #ifndef __GLO__
  4. #define __GLO__
  5.  
  6. #define        ProcHelp            2
  7.  
  8. #ifndef _H_Globals
  9. #define _H_Globals
  10.  
  11. #ifdef _DECLAIR
  12.     #define EXTERN 
  13. #else
  14.     #define EXTERN extern
  15. #endif
  16.  
  17.  
  18. struct matdscr
  19. {
  20.     short    row;
  21.     short    col;
  22.     short    firstreg;
  23. };
  24.  
  25. extern    struct    matdscr matA, matB, matC, matD, matE;
  26.  
  27. struct    stkstrk
  28. {
  29.     double_t    real;
  30.     double_t    imag;
  31.     char    whichmat;    /* 0x00 = 00000000 = none    */
  32.                         /* 0x01 = 00000001 = A        */
  33.                         /* 0x02 = 00000010 = B        */
  34.                         /* 0x03 = 00000011 = C        */
  35.                         /* 0x04 = 00000100 = D        */
  36.                         /* 0x05 = 00000101 = E        */
  37. };
  38.  
  39. extern struct stkstrk stk1, stk2, stk3, stk4, lastx, tempstrk/*, spare*/;
  40.  
  41. struct    runstrk
  42. {
  43.     char    pos1;
  44.     char    pos2;
  45.     char    pos3;
  46.     char    pos4;
  47.     char    number;
  48.     char    pStr[13];
  49. };
  50.  
  51. extern    struct runstrk run[449];
  52.  
  53. struct regstrk
  54. {
  55.     double_t    real;
  56.     char    whichmat;
  57. };                        /*    no storage allocated    */
  58.  
  59. extern struct regstrk reg[66], *whichRegn, *whichReg0n;
  60.  
  61. typedef    struct
  62. {
  63.             Str255    ownerName;
  64.             Str255    ownerOrg;
  65.             Str255    ownerRegNo;
  66.             Str255    SUName;
  67.             Str255    SUPassword;
  68.             Str255    mem1name;
  69.             Str255    mem2name;
  70.             Str255    mem3name;
  71.             Str255    mem4name;
  72.             Str255    mem5name;
  73.     struct    matdscr    matA;
  74.     struct    matdscr    matB;
  75.     struct    matdscr    matC;
  76.     struct    matdscr    matD;
  77.     struct    matdscr    matE;    
  78.             short    memstat;    /*    number of registers used as registers, 20 originally    */
  79.             short    regstat;    /*    number of registers available    */
  80.             short    memcom;        /*    memory registers committed to matrix elements    */
  81.     struct    stkstrk    stk5;
  82.     struct    stkstrk    stk4;
  83.     struct    stkstrk    stk3;
  84.     struct    stkstrk    stk2;
  85.     struct    stkstrk    stk1;
  86.     struct    regstrk    regIn;            /*    new Index Register    */
  87.     struct    regstrk    reg[66];
  88.     struct    stkstrk    lastx;
  89.     struct    stkstrk    tempstrk;
  90.             long    gFlagState;
  91.             short    gDigits;
  92.             Boolean    gUser;
  93.             short    gResultMatrix;
  94. }    mapstruct;            /*    storage IS allocated for mapstruct    */
  95.  
  96. EXTERN    mapstruct map;
  97.  
  98. typedef struct
  99. {
  100.             long    PC;
  101.             long    tPC;
  102.             short    SP;
  103.             short    END;
  104.             short    rtnStk[7];
  105.     struct    runstrk run[449];
  106.             short    breakout;
  107.             Boolean stop;
  108. }    frogstruct;
  109.  
  110. EXTERN    frogstruct    frog;
  111.  
  112. typedef struct {
  113.     /* Standard fields: */
  114.         TEHandle        text;
  115.         ControlHandle    vScroll;
  116.         ControlHandle    hScroll;
  117.         short            fileNum;
  118.         short            pFileNum;
  119.         short            qFileNum;
  120.         short            volNum;
  121.         Boolean            dirty;
  122.         Boolean            pDirty;
  123.         Boolean            qDirty;
  124.         StringHandle    filename;
  125.         StringHandle    pFilename;        /*    program filename    */
  126.         StringHandle    qFilename;        /*    data filename        */
  127.         enum {noWindow, WMainWindow, WHelp, WProgramWindow, WErrorWindow, WTextWindow, WRun}    windowKind;
  128.         Handle            witlHandle;        /* Window itemlist resource */
  129.         Handle            wictHandle;        /* Window item color table resource */
  130.  
  131.     /* Application-specific fields: */
  132.     /* for MainWindow: */
  133. /*          mapstruct         map;*/
  134. /*          frogstruct        frog;*/
  135.           
  136.     /* for Help: */
  137.       ListHandle        List1HandleHelp;;
  138.       short            List1ChoiceHelp;
  139.       TEHandle        Field2Handle;
  140.       ControlHandle        Scroll3Handle;
  141.  
  142.     /* for ProgramWindow: */
  143.       ListHandle        List1HandleProgramWindow;
  144.       short            List1ChoiceProgramWindow;
  145.       ListHandle        List2HandleProgramWindow;
  146.       short            List2ChoiceProgramWindow;
  147.       ListHandle        List3HandleProgramWindow;
  148.       short            List3ChoiceProgramWindow;
  149.       
  150.     /* for ErrorWindow: */
  151.       TEHandle        Field3Handle;
  152.     /* for Run: */
  153.       ;
  154.  
  155. } WinInfoRec, *WinInfoPtr;
  156.  
  157. typedef struct {
  158.     Boolean            hasGestalt;            /* has Gestalt manager    */
  159.     Boolean            hasWNE;                /* has WaitNextEvent    */
  160.     Boolean            hasColorQD;            /* has Color QuickDraw    */
  161.     Boolean            hasAppleEvents;        /* has Apple Events        */
  162.     Boolean            hasEditionMgr;        /* has Edition Manager    */
  163. } SysConfigRec;
  164.  
  165.  
  166. /* Standard vars: */
  167. extern    Boolean            quittingTime;
  168. extern    short            kkk;        /* to accomodate Chuck Hoffmann's use of globals    */
  169. extern    EventRecord        curEvent;
  170. extern    WindowPtr        curWindow;
  171. extern    WindowPtr        altCurWindow;
  172. extern    WinInfoPtr        cur;
  173. extern    WinInfoPtr        altCur;
  174. extern    Boolean            inBackground;
  175. extern    SysConfigRec    sysConfig;
  176. extern    long            helpLong;                /* for help facility                */
  177. extern    short            helpPrev;                /* previously selected help item    */
  178. extern    short            myMouseWhere;            /* location (not Point) of mouse    */
  179. extern    short            WorkRetCode;            /* work return code                    */
  180. extern    WindowPtr        workWindowPtr;            /* pointer from FindWindow            */
  181. extern    long            worklong;                /* work variable                    */
  182. extern    RgnHandle        workRegionH;            /* work handle for TE redraw        */
  183. extern    Rect            destRect;                /* for calculations of TE areas        */
  184. extern    short            windSub;                /* subscript for window table        */
  185. extern    Point            helpCell;                /* cell for List Manager            */
  186. extern    Rect            workRect;                /* work variable                    */
  187.  
  188.  
  189.  
  190. /* Application-specific vars: */
  191.  
  192. /*----------*/
  193. void    GlobalsSeg        (void);
  194. void    InitGlobals        (void);
  195. void    SetInfo            (WindowPtr        window);
  196. /*void     SetSaveInfo     (WindowPtr        window);*/
  197.  
  198. void    SetNewInfo        (WindowPtr        window);
  199. /*void     SetAltInfo         (WindowPtr        window);*/
  200.  
  201. void    DiscardInfo        (WindowPtr        window);
  202.  
  203. #endif    /* _H_Globals */
  204.  
  205. #endif /*    __GLO__    */
  206.  
  207. /* Globals */
  208.